package com.yuanlp.shoppingmall.base;


import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * 基本的Fragement,其他几个页面都要继承这个基类
 * 继承fragment必须重写至少3个方法，
 *  1、onCreate  获取context
 *  2、onCreateView  展示UI布局
 *  3、onActivityCreated  初始化各种空间，获取数据等
 */
public abstract class BaseFragement extends Fragment {

    protected Context context;

    /**
     * onCreate是指创建该fragment，类似于Activity.onCreate，你可以在其中初始化除了view之外的东西；
     * @param savedInstanceState
     */
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context=getActivity();
    }

    /**
     * onCreateView是创建该fragment对应的视图，你必须在这里创建自己的视图并返回给调用者。负责UI的创建显示
     * @param inflater
     * @param container
     * @param savedInstanceState
     * @return
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        return initview();

        //如下面这个代码就是在home主页面时，inITview里，return这个view来展示这个布局
        // View view = View.inflate(mContext, R.act_item.fragment_home, null);

    }

    /**
     * 强制子类实现他，让在oncreateview里显示这个布局。
     * @return
     */
    public abstract View initview();


    /**
     * 当activity被完全启动时回调，在这里初始化自定义的view。 这里负责数据获取
     * @param savedInstanceState
     */
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        initData();
    }

    /**
     * 当子类需要联网获取数据时，可以重写该方法
     */
    public void initData() {

    }



}
